#include <bits/stdc++.h>
using namespace std;

class Solution {
public:
    /**
     * 
     * @param str string字符串 
     * @return string字符串
     */
    string computeString(string str) {
        stack<char> st;
        st.push(str[0]);
        int i = 1, size = str.size();
        string res = "";
        while(i < size){
            if(str[i] != ']') {
                st.push(str[i]);
                // ++i;
            }
            else{
                while(!st.empty() && st.top() != '['){
                    res = st.top() + res;
                    st.pop();
                }
                if(!st.empty() && st.top() == '[') st.pop();
                if(!st.empty() && st.top() == '*'){
                    st.pop();
                    int num = 0;
                    while(!st.empty() && isdigit(st.top())){
                        num = num * 10 + (st.top() - '0');
                        st.pop();
                    }
                    string tmp = res;
                    while(--num){
                        res += tmp;
                    }
                }
                // cout << res << endl;
            }
            ++i;
        }

        while(!st.empty()){
            res = st.top() + res;
            st.pop();
        }



        return res;
    }
};

int main(int argc, char const *argv[])
{
    Solution sol;

    string str = "h2h3*[a2*[c]]";
    cout << sol.computeString(str);

    return 0;
}
